# 字符串基础操作题

# 假设有一个初始字符串 `s = "Hello, Python world!"`，进行下面的操作：
s = "Hello, Python world!"

#  1. 字符串长度计算
x = len(s)
print(x)

#  2. 计算字符串中"o"字符的个数
count = s.count('o')
print(count)

#  3. 将字符串转换为大写
upper_str = s.upper()
print(upper_str)

#  4. 将字符串转换为小写
lower_str = s.lower()
print(lower_str)


#  5. 查找"Python"在字符串中的位置
postition = s.find("Python")


#  6. 替换字符串中的"world"为"universe"
new_str = s.replace("world","universe")

#  7. 检查字符串是否以"Hello"开始
result = s.startswith("Hello")

#  8. 检查字符串是否以"!"结尾
result = s.endswith("！")

#  9. 以","为分隔符，拆分字符串
result = s.split(",")

#  10. 去除字符串首尾的"!"
result = s.strip("!")
#  11. 字符串反转
s11 = s[::-1]

#  12. 字符串切片，获取"Python"
s12 = s[7:13]

#  13. 将字符串s中的"Hello,"删除
s13 = s.replace("Hello,", "")

#  14. 拼接两个字符串 "Hello," 和 "World!"
s14 = "Hello," + "World!"

#  15. 使用f-string合并字符串和数字2021
year = 2021
s15 = f"Year: {year}"

#  16. 找出'a'第一次出现的位置
s16 = s.find('a')
print(s16) 

#  17. 找出'e'最后一次出现的位置
s17 = s.rfind('e')
print(s17)  

#  18. 计算字符串中空格的数量
s18 = s.count(' ')
print(s18)  

#  19. 使用循环遍历字符串中的每个字符
print("字符遍历:")
for char in s:
    print(char, end=" ")  

#  20. 将字符串转为"列表"形式，每个字符为一个列表元素
s20 = list(s)
print(s20)  

#  21. 字符串排序（提示：先转换为列表）
s21_list = sorted(s20)
s21 = ''.join(s21_list)
print(s21)  

#  22. 判断字符串是否为数字
s22 = s.isdigit()
print(s22) 

#  23. 将列表 `['Hello,', 'Python', 'World!']` 使用空格连接为一个字符串
lst = ['Hello,', 'Python', 'World!']
s23 = ' '.join(lst)
print(s23)  

#  24. 使用%操作符格式化字符串，将数字100插入到"Number: "后面
s24 = "Number: %d" % 100
print(s24) 

#  25. 检查字符串是否全部为小写字母
s25 = s.islower()
print(s25)  

#  26. 检查字符串是否全部为大写字母
s26 = s.isupper()
print(s26) 

#  27. 将数字列表 `[1, 2, 3]` 转换成字符串，元素之间用`-`连接
nums = [1, 2, 3]
s27 = '-'.join(map(str, nums))
print(s27)  


#  28. 找出字符串中所有的"o"的位置
o_positions = [i for i, char in enumerate(s) if char == 'o']
print(o_positions)  

#  29. 替换字符串中的第一个"o"为"O"
s29 = s.replace('o', 'O', 1)
print(s29)  

#  30. 字符串插入操作，向字符串指定位置插入子字符串"amazing "
insert_pos = 7
s30 = s[:insert_pos] + "amazing " + s[insert_pos:]
print(s30)  
